/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package uy.edu.ort.uruguayviajes.web;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import uy.edu.or.uruguayviajes.negocio.servicios.ReservaService;
import uy.edu.ort.comun.dominio.dto.DatosTarjetaDTO;
import uy.edu.ort.comun.dominio.dto.PaqueteDTO;
//import uy.edu.ort.uruguayviajes.modelo.Usuario;
import uy.edu.ort.comun.dominio.dto.UsuarioDTO;
import uy.edu.ort.uruguayviajes.negocio.excepciones.ReservaException;
import uy.edu.ort.uruguayviajes.web.PaquetesBean;
//import uy.edu.ort.uruguayviajes.ws.autorizacion.DatosTarjeta;
//import uy.edu.ort.uruguayviajes.ws.clientepaquetes.PaqueteTuristico;

/**
 *
 * @author magui
 */
@ManagedBean
@SessionScoped
public class ReservasBean {

    private DatosTarjetaDTO datosTarjeta;
    private UsuarioDTO usuario;
    private String mesVencimiento;
    private String anoVencimiento;
    private String tipoTarjeta;
    private String numeroTarjeta;
    private String codigoSeguridad;
    private Double costo;
    private PaqueteDTO paqueteReserva;
    
    @EJB
    ReservaService fachadaReserva;

    public PaqueteDTO getPaqueteReserva() {
        return paqueteReserva;
    }

    public void setPaqueteReserva(PaqueteDTO paqueteReserva) {
        this.paqueteReserva = paqueteReserva;
    }

    public Double getCosto() {
        return costo;
    }

    public void setCosto(Double costo) {
        this.costo = costo;
    }

    public String getCodigoSeguridad() {
        return codigoSeguridad;
    }

    public void setCodigoSeguridad(String codigoSeguridad) {
        this.codigoSeguridad = codigoSeguridad;
    }

    public String getNumeroTarjeta() {
        return numeroTarjeta;
    }

    public void setNumeroTarjeta(String numeroTarjeta) {
        this.numeroTarjeta = numeroTarjeta;
    }

    public String getTipoTarjeta() {
        return tipoTarjeta;
    }

    public void setTipoTarjeta(String tipoTarjeta) {
        this.tipoTarjeta = tipoTarjeta;
    }

    public String getAnoVencimiento() {
        return anoVencimiento;
    }

    public void setAnoVencimiento(String anoVencimiento) {
        this.anoVencimiento = anoVencimiento;
    }

    public DatosTarjetaDTO getDatosTarjeta() {
        return datosTarjeta;
    }

    public void setDatosTarjeta(DatosTarjetaDTO datosTarjeta) {
        this.datosTarjeta = datosTarjeta;
    }

    public String getMesVencimiento() {
        return mesVencimiento;
    }

    public void setMesVencimiento(String mesVencimiento) {
        this.mesVencimiento = mesVencimiento;
    }

    public UsuarioDTO getUsuario() {
        return usuario;
    }

    public void setUsuario(UsuarioDTO usuario) {
        this.usuario = usuario;
    }
    
    /** Creates a new instance of ReservasBean */
    public ReservasBean() {
    }
    
    private String setFechaVencimiento(){
        String mesV = mesVencimiento.concat("-".concat(anoVencimiento));
        return mesV;
    }
    
    public String confirmarReserva() throws ReservaException{
        datosTarjeta = new DatosTarjetaDTO();
        datosTarjeta.setCodigoSeguridad(codigoSeguridad);
        //datosTarjeta.setNombreTitular(usuario.getNombres()+usuario.getApellidos());
        datosTarjeta.setNombreTitular(UsuariosBean.currentUser.getNombres()+UsuariosBean.currentUser.getApellidos());
        datosTarjeta.setVencimiento(setFechaVencimiento());
        datosTarjeta.setTipo(tipoTarjeta);
        fachadaReserva.reservar(datosTarjeta, UsuariosBean.currentUser, PaquetesBean.paquete, "U$S", costo);
        System.out.println("Confirmada la reserva");
        return "confirma";
    }
    
}
